{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Very Basics of Musical Instruments Classification using Machine Learning\n",
    "## MFCC, Deep Learning (Gentle introduction using Keras)\n",
    "\n",
    "<br>\n",
    "\n",
    "<p align=\"left\">\n",
    "<img src=\"./img/businesscard.jpg\" width=\"300px\" alt=\"Business Card\" align=\"left\" >\n",
    "</p>\n",
    "<br>\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/0R-kTc5PjDM\" frameborder=\"0\" \n",
       "allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\"></iframe>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/0R-kTc5PjDM\" frameborder=\"0\" \n",
    "allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\"></iframe>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Imports\n",
    "\n",
    "#General\n",
    "import numpy as np\n",
    "import pickle\n",
    "import itertools\n",
    "\n",
    "# System\n",
    "import os, fnmatch\n",
    "\n",
    "# Visualization\n",
    "import seaborn #visualization library, must be imported before all other plotting libraries\n",
    "import matplotlib.pyplot as plt\n",
    "from IPython.core.display import HTML, display, Image\n",
    "\n",
    "\n",
    "# Machine Learning\n",
    "from sklearn.preprocessing import LabelEncoder, OneHotEncoder\n",
    "from sklearn.model_selection import StratifiedShuffleSplit, GridSearchCV\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.metrics import recall_score, precision_score, accuracy_score\n",
    "from sklearn.metrics import confusion_matrix, f1_score, classification_report\n",
    "from sklearn.metrics import classification_report\n",
    "\n",
    "# Deep Learning\n",
    "from keras import backend as K\n",
    "from keras.layers import Input, Dense\n",
    "from keras.models import Model, Sequential\n",
    "from keras.optimizers import SGD\n",
    "from keras.callbacks import History\n",
    "from keras.wrappers.scikit_learn import KerasClassifier\n",
    "from keras.utils import plot_model\n",
    "\n",
    "# Random Seed\n",
    "from tensorflow import set_random_seed\n",
    "from numpy.random import seed\n",
    "seed(1)\n",
    "set_random_seed(2)\n",
    "\n",
    "# Audio\n",
    "import librosa.display, librosa\n",
    "\n",
    "# Configurations\n",
    "path='./audio/london_phill_dataset_multi/'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Auxiliary Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function to Display a Website\n",
    "def show_web(url):\n",
    "    html_code='<center><iframe src=\"%s\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>' \\\n",
    "\t\t% (url)\n",
    "    display(HTML(html_code))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get filenames"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "found 600 audio files in ./audio/london_phill_dataset_multi/\n"
     ]
    }
   ],
   "source": [
    "# Get files in data path\n",
    "\n",
    "files = []\n",
    "for root, dirnames, filenames in os.walk(path):\n",
    "    for filename in fnmatch.filter(filenames, '*.mp3'):\n",
    "        files.append(os.path.join(root, filename))\n",
    "\n",
    "print(\"found %d audio files in %s\"%(len(files),path))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load Labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "filename=\"inst_labels.pl\"\n",
    "# Load labels\n",
    "with open(filename, \"rb\") as f:\n",
    "    labels = pickle.load( open( filename, \"rb\" ) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6 classes: cello, flute, oboe, sax, trumpet, viola\n"
     ]
    }
   ],
   "source": [
    "# Encode Labels\n",
    "labelencoder = LabelEncoder()\n",
    "labelencoder.fit(labels)\n",
    "print(len(labelencoder.classes_), \"classes:\", \", \".join(list(labelencoder.classes_)))\n",
    "classes_num = labelencoder.transform(labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Labels: ['oboe', 'oboe', 'oboe']\n",
      "Encoded Classes:  [2 2 2]\n"
     ]
    }
   ],
   "source": [
    "print('Labels:', labels[:3])\n",
    "print('Encoded Classes: ', classes_num[0:3])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameters for Train/Test Set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Machine Learning Parameters\n",
    "testset_size = 0.25 #Percentage of data for Testing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save / Load Feature Vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "filename=\"mfcc_feature_vectors.pl\"\n",
    "# Load mfcc features from saved file\n",
    "with open(filename, \"rb\") as f:\n",
    "    scaled_feature_vectors = pickle.load( open( filename, \"rb\" ) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train and Test Sets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create Train and Test Set\n",
    "splitter = StratifiedShuffleSplit(n_splits=1, test_size=testset_size, random_state=0)\n",
    "splits = splitter.split(scaled_feature_vectors, classes_num)\n",
    "for train_index, test_index in splits:\n",
    "    train_set = scaled_feature_vectors[train_index]\n",
    "    test_set = scaled_feature_vectors[test_index]\n",
    "    train_classes = classes_num[train_index]\n",
    "    test_classes = classes_num[test_index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train_set shape: (450, 13)\n",
      "test_set shape: (150, 13)\n",
      "train_classes shape: (450,)\n",
      "test_classes shape: (150,)\n"
     ]
    }
   ],
   "source": [
    "# Check Set Shapes\n",
    "print(\"train_set shape:\",train_set.shape)\n",
    "print(\"test_set shape:\",test_set.shape)\n",
    "print(\"train_classes shape:\",train_classes.shape)\n",
    "print(\"test_classes shape:\",test_classes.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Keras"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<center><iframe src=\"https://keras.io/\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_web(\"https://keras.io/\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# DNN\n",
    "# Use Keras Backend Type\n",
    "train_set_d=train_set.astype(K.floatx())\n",
    "test_set_d=test_set.astype(K.floatx())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## One Hot Encoding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# One Hot encode\n",
    "onehot_encoder = OneHotEncoder(sparse=False, categories='auto')\n",
    "integer_encoded_train_classes =  train_classes.reshape(len( train_classes), 1)\n",
    "onehot_encoded_train_classes = onehot_encoder.fit_transform(integer_encoded_train_classes,1)\n",
    "integer_encoded_test_classes =  test_classes.reshape(len( test_classes),1)\n",
    "onehot_encoded_test_classes = onehot_encoder.fit_transform(integer_encoded_test_classes,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Integer Encoded: [[0]\n",
      " [2]\n",
      " [1]]\n",
      "One-hot Encoded:  [[1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0.]]\n"
     ]
    }
   ],
   "source": [
    "print('Integer Encoded:', integer_encoded_train_classes[:3] )\n",
    "print('One-hot Encoded: ', onehot_encoded_train_classes[:3] )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train_set shape: (450, 13)\n",
      "test_set shape: (150, 13)\n",
      "train_classes shape: (450, 6)\n",
      "test_classes shape: (150, 6)\n"
     ]
    }
   ],
   "source": [
    "# Check Set Shapes\n",
    "print(\"train_set shape:\",train_set_d.shape)\n",
    "print(\"test_set shape:\",test_set_d.shape)\n",
    "print(\"train_classes shape:\",onehot_encoded_train_classes.shape)\n",
    "print(\"test_classes shape:\",onehot_encoded_test_classes.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Reshape Sets for Keras\n",
    "train_set_d=train_set.reshape(train_set_d.shape[0],1,train_set_d.shape[1])\n",
    "test_set_d=test_set.reshape(test_set_d.shape[0],1,test_set_d.shape[1])\n",
    "train_classes_d_hot=onehot_encoded_train_classes.reshape(onehot_encoded_train_classes.shape[0],1,\n",
    "                                                         onehot_encoded_train_classes.shape[1])\n",
    "test_classes_d_hot=onehot_encoded_test_classes.reshape(onehot_encoded_test_classes.shape[0],1,\n",
    "                                                       onehot_encoded_test_classes.shape[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train_set shape: (450, 1, 13)\n",
      "test_set shape: (450, 1, 13)\n",
      "train_classes shape: (450, 1, 6)\n",
      "test_classes shape: (150, 1, 6)\n"
     ]
    }
   ],
   "source": [
    "# Check Set Shapes\n",
    "print(\"train_set shape:\",train_set_d.shape)\n",
    "print(\"test_set shape:\",train_set_d.shape)\n",
    "print(\"train_classes shape:\",train_classes_d_hot.shape)\n",
    "print(\"test_classes shape:\",test_classes_d_hot.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<center><iframe src=\"https://keras.io/models/model/\" width=\"800\" height=\"600\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe></center>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_web(\"https://keras.io/models/model/\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create a Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         (None, 1, 13)             0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1, 12)             168       \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1, 10)             130       \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 1, 6)              66        \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 1, 6)              42        \n",
      "=================================================================\n",
      "Total params: 406\n",
      "Trainable params: 406\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# Creat Simple Model\n",
    "model_input = Input(shape=(1,train_set.shape[1]))\n",
    "fc1 = Dense(12, activation=\"relu\")(model_input)\n",
    "fc2 = Dense(10, activation=\"relu\")(fc1)\n",
    "fc3 = Dense(8, activation=\"relu\")(fc2)\n",
    "fc4 = Dense(6, activation=\"relu\")(fc2)\n",
    "n=onehot_encoded_train_classes.shape[1]\n",
    "out = Dense(n, activation=\"softmax\")(fc4)\n",
    "model_d = Model(inputs=[model_input], outputs=[out])\n",
    "model_d.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot_model(model_d, to_file='model_d.png', show_shapes=True)\n",
    "Image('model_d.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compile a Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compile Model\n",
    "model_d.compile(loss      = 'categorical_crossentropy',\n",
    "              optimizer = SGD(lr=0.05),\n",
    "              metrics   =['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train a Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 450 samples, validate on 150 samples\n",
      "Epoch 1/200\n",
      "450/450 [==============================] - 1s 2ms/step - loss: 1.5589 - acc: 0.3778 - val_loss: 1.3347 - val_acc: 0.4400\n",
      "Epoch 2/200\n",
      "450/450 [==============================] - 0s 724us/step - loss: 1.0163 - acc: 0.6333 - val_loss: 0.8263 - val_acc: 0.6867\n",
      "Epoch 3/200\n",
      "450/450 [==============================] - 0s 867us/step - loss: 0.6395 - acc: 0.7622 - val_loss: 0.6284 - val_acc: 0.7733\n",
      "Epoch 4/200\n",
      "450/450 [==============================] - 0s 851us/step - loss: 0.4400 - acc: 0.8489 - val_loss: 0.4398 - val_acc: 0.8400\n",
      "Epoch 5/200\n",
      "450/450 [==============================] - 0s 717us/step - loss: 0.3216 - acc: 0.9000 - val_loss: 0.3727 - val_acc: 0.9000\n",
      "Epoch 6/200\n",
      "450/450 [==============================] - 0s 851us/step - loss: 0.2557 - acc: 0.9178 - val_loss: 0.2606 - val_acc: 0.9400\n",
      "Epoch 7/200\n",
      "450/450 [==============================] - 0s 709us/step - loss: 0.1910 - acc: 0.9556 - val_loss: 0.2231 - val_acc: 0.9600\n",
      "Epoch 8/200\n",
      "450/450 [==============================] - 0s 824us/step - loss: 0.2129 - acc: 0.9267 - val_loss: 0.2482 - val_acc: 0.9400\n",
      "Epoch 9/200\n",
      "450/450 [==============================] - 0s 726us/step - loss: 0.1375 - acc: 0.9533 - val_loss: 0.2514 - val_acc: 0.9267\n",
      "Epoch 10/200\n",
      "450/450 [==============================] - 0s 862us/step - loss: 0.1018 - acc: 0.9689 - val_loss: 0.2579 - val_acc: 0.9200\n",
      "Epoch 11/200\n",
      "450/450 [==============================] - 0s 857us/step - loss: 0.0920 - acc: 0.9733 - val_loss: 0.2351 - val_acc: 0.9467\n",
      "Epoch 12/200\n",
      "450/450 [==============================] - 0s 860us/step - loss: 0.1314 - acc: 0.9556 - val_loss: 0.2681 - val_acc: 0.9533\n",
      "Epoch 13/200\n",
      "450/450 [==============================] - 0s 728us/step - loss: 0.1303 - acc: 0.9600 - val_loss: 0.2258 - val_acc: 0.9400\n",
      "Epoch 14/200\n",
      "450/450 [==============================] - 0s 845us/step - loss: 0.0802 - acc: 0.9756 - val_loss: 0.2360 - val_acc: 0.9600\n",
      "Epoch 15/200\n",
      "450/450 [==============================] - 0s 867us/step - loss: 0.0738 - acc: 0.9778 - val_loss: 0.2257 - val_acc: 0.9733\n",
      "Epoch 16/200\n",
      "450/450 [==============================] - 0s 737us/step - loss: 0.0810 - acc: 0.9756 - val_loss: 0.2557 - val_acc: 0.9533\n",
      "Epoch 17/200\n",
      "450/450 [==============================] - 0s 856us/step - loss: 0.0604 - acc: 0.9800 - val_loss: 0.2251 - val_acc: 0.9467\n",
      "Epoch 18/200\n",
      "450/450 [==============================] - 0s 839us/step - loss: 0.0562 - acc: 0.9844 - val_loss: 0.2991 - val_acc: 0.9467\n",
      "Epoch 19/200\n",
      "450/450 [==============================] - 0s 726us/step - loss: 0.0490 - acc: 0.9844 - val_loss: 0.1981 - val_acc: 0.9533\n",
      "Epoch 20/200\n",
      "450/450 [==============================] - 0s 707us/step - loss: 0.0430 - acc: 0.9933 - val_loss: 0.2285 - val_acc: 0.9400\n",
      "Epoch 21/200\n",
      "450/450 [==============================] - 0s 847us/step - loss: 0.0460 - acc: 0.9889 - val_loss: 0.2292 - val_acc: 0.9667\n",
      "Epoch 22/200\n",
      "450/450 [==============================] - 0s 856us/step - loss: 0.0370 - acc: 0.9933 - val_loss: 0.2590 - val_acc: 0.9533\n",
      "Epoch 23/200\n",
      "450/450 [==============================] - 0s 709us/step - loss: 0.0385 - acc: 0.9911 - val_loss: 0.2053 - val_acc: 0.9667\n",
      "Epoch 24/200\n",
      "450/450 [==============================] - 0s 853us/step - loss: 0.0348 - acc: 0.9933 - val_loss: 0.2221 - val_acc: 0.9600\n",
      "Epoch 25/200\n",
      "450/450 [==============================] - 0s 859us/step - loss: 0.0327 - acc: 0.9933 - val_loss: 0.2126 - val_acc: 0.9667\n",
      "Epoch 26/200\n",
      "450/450 [==============================] - 0s 728us/step - loss: 0.0307 - acc: 0.9933 - val_loss: 0.2431 - val_acc: 0.9467\n",
      "Epoch 27/200\n",
      "450/450 [==============================] - 0s 855us/step - loss: 0.0323 - acc: 0.9933 - val_loss: 0.2026 - val_acc: 0.9733\n",
      "Epoch 28/200\n",
      "450/450 [==============================] - 0s 722us/step - loss: 0.0351 - acc: 0.9911 - val_loss: 0.1956 - val_acc: 0.9667\n",
      "Epoch 29/200\n",
      "450/450 [==============================] - 0s 821us/step - loss: 0.0320 - acc: 0.9956 - val_loss: 0.2311 - val_acc: 0.9600\n",
      "Epoch 30/200\n",
      "450/450 [==============================] - 0s 722us/step - loss: 0.0324 - acc: 0.9933 - val_loss: 0.2080 - val_acc: 0.9667\n",
      "Epoch 31/200\n",
      "450/450 [==============================] - 0s 803us/step - loss: 0.0328 - acc: 0.9933 - val_loss: 0.2247 - val_acc: 0.9600\n",
      "Epoch 32/200\n",
      "450/450 [==============================] - 0s 700us/step - loss: 0.0287 - acc: 0.9956 - val_loss: 0.2184 - val_acc: 0.9667\n",
      "Epoch 33/200\n",
      "450/450 [==============================] - 0s 695us/step - loss: 0.0332 - acc: 0.9889 - val_loss: 0.2355 - val_acc: 0.9467\n",
      "Epoch 34/200\n",
      "450/450 [==============================] - 0s 849us/step - loss: 0.0293 - acc: 0.9933 - val_loss: 0.2347 - val_acc: 0.9533\n",
      "Epoch 35/200\n",
      "450/450 [==============================] - 0s 730us/step - loss: 0.0356 - acc: 0.9911 - val_loss: 0.3011 - val_acc: 0.9200\n",
      "Epoch 36/200\n",
      "450/450 [==============================] - 0s 772us/step - loss: 0.0330 - acc: 0.9911 - val_loss: 0.2199 - val_acc: 0.9600\n",
      "Epoch 37/200\n",
      "450/450 [==============================] - 0s 791us/step - loss: 0.0300 - acc: 0.9933 - val_loss: 0.2216 - val_acc: 0.9533\n",
      "Epoch 38/200\n",
      "450/450 [==============================] - 0s 771us/step - loss: 0.0264 - acc: 0.9933 - val_loss: 0.2326 - val_acc: 0.9467\n",
      "Epoch 39/200\n",
      "450/450 [==============================] - 0s 713us/step - loss: 0.0245 - acc: 0.9956 - val_loss: 0.2459 - val_acc: 0.9400\n",
      "Epoch 40/200\n",
      "450/450 [==============================] - 0s 663us/step - loss: 0.0253 - acc: 0.9956 - val_loss: 0.2234 - val_acc: 0.9533\n",
      "Epoch 41/200\n",
      "450/450 [==============================] - 0s 806us/step - loss: 0.0246 - acc: 0.9956 - val_loss: 0.2240 - val_acc: 0.9467\n",
      "Epoch 42/200\n",
      "450/450 [==============================] - 0s 721us/step - loss: 0.0242 - acc: 0.9956 - val_loss: 0.2247 - val_acc: 0.9533\n",
      "Epoch 43/200\n",
      "450/450 [==============================] - 0s 504us/step - loss: 0.0232 - acc: 0.9956 - val_loss: 0.2393 - val_acc: 0.9467\n",
      "Epoch 44/200\n",
      "450/450 [==============================] - 0s 679us/step - loss: 0.0236 - acc: 0.9956 - val_loss: 0.2324 - val_acc: 0.9467\n",
      "Epoch 45/200\n",
      "450/450 [==============================] - 0s 562us/step - loss: 0.0225 - acc: 0.9956 - val_loss: 0.2323 - val_acc: 0.9467\n",
      "Epoch 46/200\n",
      "450/450 [==============================] - 0s 724us/step - loss: 0.0216 - acc: 0.9956 - val_loss: 0.2232 - val_acc: 0.9533\n",
      "Epoch 47/200\n",
      "450/450 [==============================] - 0s 849us/step - loss: 0.0219 - acc: 0.9956 - val_loss: 0.2343 - val_acc: 0.9467\n",
      "Epoch 48/200\n",
      "450/450 [==============================] - 0s 782us/step - loss: 0.0211 - acc: 0.9956 - val_loss: 0.2320 - val_acc: 0.9533\n",
      "Epoch 49/200\n",
      "450/450 [==============================] - 0s 571us/step - loss: 0.0216 - acc: 0.9956 - val_loss: 0.2393 - val_acc: 0.9533\n",
      "Epoch 50/200\n",
      "450/450 [==============================] - 0s 809us/step - loss: 0.0211 - acc: 0.9956 - val_loss: 0.2346 - val_acc: 0.9533\n",
      "Epoch 51/200\n",
      "450/450 [==============================] - 0s 510us/step - loss: 0.0208 - acc: 0.9956 - val_loss: 0.2469 - val_acc: 0.9467\n",
      "Epoch 52/200\n",
      "450/450 [==============================] - 0s 797us/step - loss: 0.0201 - acc: 0.9956 - val_loss: 0.2386 - val_acc: 0.9533\n",
      "Epoch 53/200\n",
      "450/450 [==============================] - 0s 693us/step - loss: 0.0201 - acc: 0.9956 - val_loss: 0.2343 - val_acc: 0.9533\n",
      "Epoch 54/200\n",
      "450/450 [==============================] - 0s 715us/step - loss: 0.0196 - acc: 0.9956 - val_loss: 0.2428 - val_acc: 0.9533\n",
      "Epoch 55/200\n",
      "450/450 [==============================] - 0s 797us/step - loss: 0.0196 - acc: 0.9956 - val_loss: 0.2432 - val_acc: 0.9533\n",
      "Epoch 56/200\n",
      "450/450 [==============================] - 0s 727us/step - loss: 0.0181 - acc: 0.9956 - val_loss: 0.2479 - val_acc: 0.9533\n",
      "Epoch 57/200\n",
      "450/450 [==============================] - 0s 820us/step - loss: 0.0188 - acc: 0.9956 - val_loss: 0.2465 - val_acc: 0.9600\n",
      "Epoch 58/200\n",
      "450/450 [==============================] - 0s 703us/step - loss: 0.0184 - acc: 0.9956 - val_loss: 0.2481 - val_acc: 0.9533\n",
      "Epoch 59/200\n",
      "450/450 [==============================] - 0s 840us/step - loss: 0.0180 - acc: 0.9956 - val_loss: 0.2438 - val_acc: 0.9600\n",
      "Epoch 60/200\n",
      "450/450 [==============================] - 0s 686us/step - loss: 0.0179 - acc: 0.9956 - val_loss: 0.2450 - val_acc: 0.9600\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 61/200\n",
      "450/450 [==============================] - 0s 736us/step - loss: 0.0171 - acc: 0.9956 - val_loss: 0.2485 - val_acc: 0.9467\n",
      "Epoch 62/200\n",
      "450/450 [==============================] - 0s 789us/step - loss: 0.0170 - acc: 0.9956 - val_loss: 0.2504 - val_acc: 0.9600\n",
      "Epoch 63/200\n",
      "450/450 [==============================] - 0s 689us/step - loss: 0.0167 - acc: 0.9956 - val_loss: 0.2452 - val_acc: 0.9600\n",
      "Epoch 64/200\n",
      "450/450 [==============================] - 0s 697us/step - loss: 0.0161 - acc: 0.9956 - val_loss: 0.2494 - val_acc: 0.9467\n",
      "Epoch 65/200\n",
      "450/450 [==============================] - 0s 684us/step - loss: 0.0164 - acc: 0.9956 - val_loss: 0.2534 - val_acc: 0.9533\n",
      "Epoch 66/200\n",
      "450/450 [==============================] - 0s 811us/step - loss: 0.0151 - acc: 0.9956 - val_loss: 0.2542 - val_acc: 0.9467\n",
      "Epoch 67/200\n",
      "450/450 [==============================] - 0s 726us/step - loss: 0.0152 - acc: 0.9956 - val_loss: 0.2604 - val_acc: 0.9533\n",
      "Epoch 68/200\n",
      "450/450 [==============================] - 0s 846us/step - loss: 0.0150 - acc: 0.9956 - val_loss: 0.2560 - val_acc: 0.9533\n",
      "Epoch 69/200\n",
      "450/450 [==============================] - 0s 682us/step - loss: 0.0139 - acc: 0.9956 - val_loss: 0.2582 - val_acc: 0.9533\n",
      "Epoch 70/200\n",
      "450/450 [==============================] - 0s 716us/step - loss: 0.0144 - acc: 0.9956 - val_loss: 0.2619 - val_acc: 0.9467\n",
      "Epoch 71/200\n",
      "450/450 [==============================] - 0s 791us/step - loss: 0.0137 - acc: 0.9956 - val_loss: 0.2605 - val_acc: 0.9467\n",
      "Epoch 72/200\n",
      "450/450 [==============================] - 0s 704us/step - loss: 0.0136 - acc: 0.9956 - val_loss: 0.2581 - val_acc: 0.9533\n",
      "Epoch 73/200\n",
      "450/450 [==============================] - 0s 680us/step - loss: 0.0127 - acc: 0.9956 - val_loss: 0.2632 - val_acc: 0.9533\n",
      "Epoch 74/200\n",
      "450/450 [==============================] - 0s 708us/step - loss: 0.0121 - acc: 0.9956 - val_loss: 0.2672 - val_acc: 0.9467\n",
      "Epoch 75/200\n",
      "450/450 [==============================] - 0s 799us/step - loss: 0.0125 - acc: 0.9978 - val_loss: 0.2665 - val_acc: 0.9467\n",
      "Epoch 76/200\n",
      "450/450 [==============================] - 0s 714us/step - loss: 0.0119 - acc: 0.9978 - val_loss: 0.2682 - val_acc: 0.9467\n",
      "Epoch 77/200\n",
      "450/450 [==============================] - 0s 839us/step - loss: 0.0111 - acc: 0.9978 - val_loss: 0.2714 - val_acc: 0.9467\n",
      "Epoch 78/200\n",
      "450/450 [==============================] - 0s 725us/step - loss: 0.0112 - acc: 0.9978 - val_loss: 0.2686 - val_acc: 0.9533\n",
      "Epoch 79/200\n",
      "450/450 [==============================] - 0s 822us/step - loss: 0.0106 - acc: 0.9978 - val_loss: 0.2750 - val_acc: 0.9533\n",
      "Epoch 80/200\n",
      "450/450 [==============================] - 0s 721us/step - loss: 0.0108 - acc: 0.9978 - val_loss: 0.2707 - val_acc: 0.9467\n",
      "Epoch 81/200\n",
      "450/450 [==============================] - 0s 835us/step - loss: 0.0100 - acc: 0.9978 - val_loss: 0.2713 - val_acc: 0.9533\n",
      "Epoch 82/200\n",
      "450/450 [==============================] - 0s 714us/step - loss: 0.0096 - acc: 0.9978 - val_loss: 0.2739 - val_acc: 0.9533\n",
      "Epoch 83/200\n",
      "450/450 [==============================] - 0s 690us/step - loss: 0.0096 - acc: 0.9978 - val_loss: 0.2721 - val_acc: 0.9600\n",
      "Epoch 84/200\n",
      "450/450 [==============================] - 0s 826us/step - loss: 0.0086 - acc: 0.9978 - val_loss: 0.2676 - val_acc: 0.9600\n",
      "Epoch 85/200\n",
      "450/450 [==============================] - 0s 710us/step - loss: 0.0086 - acc: 0.9978 - val_loss: 0.2710 - val_acc: 0.9600\n",
      "Epoch 86/200\n",
      "450/450 [==============================] - 0s 836us/step - loss: 0.0083 - acc: 0.9978 - val_loss: 0.2747 - val_acc: 0.9600\n",
      "Epoch 87/200\n",
      "450/450 [==============================] - 0s 710us/step - loss: 0.0070 - acc: 0.9978 - val_loss: 0.2717 - val_acc: 0.9600\n",
      "Epoch 88/200\n",
      "450/450 [==============================] - 0s 828us/step - loss: 0.0080 - acc: 0.9978 - val_loss: 0.2735 - val_acc: 0.9600\n",
      "Epoch 89/200\n",
      "450/450 [==============================] - 0s 719us/step - loss: 0.0078 - acc: 0.9978 - val_loss: 0.2720 - val_acc: 0.9600\n",
      "Epoch 90/200\n",
      "450/450 [==============================] - 0s 720us/step - loss: 0.0067 - acc: 0.9978 - val_loss: 0.2761 - val_acc: 0.9600\n",
      "Epoch 91/200\n",
      "450/450 [==============================] - 0s 775us/step - loss: 0.0068 - acc: 0.9956 - val_loss: 0.2702 - val_acc: 0.9600\n",
      "Epoch 92/200\n",
      "450/450 [==============================] - 0s 697us/step - loss: 0.0061 - acc: 0.9978 - val_loss: 0.2672 - val_acc: 0.9600\n",
      "Epoch 93/200\n",
      "450/450 [==============================] - 0s 853us/step - loss: 0.0065 - acc: 0.9978 - val_loss: 0.2695 - val_acc: 0.9600\n",
      "Epoch 94/200\n",
      "450/450 [==============================] - 0s 741us/step - loss: 0.0059 - acc: 0.9978 - val_loss: 0.2746 - val_acc: 0.9667\n",
      "Epoch 95/200\n",
      "450/450 [==============================] - 0s 750us/step - loss: 0.0052 - acc: 0.9978 - val_loss: 0.2760 - val_acc: 0.9600\n",
      "Epoch 96/200\n",
      "450/450 [==============================] - 0s 840us/step - loss: 0.0047 - acc: 0.9978 - val_loss: 0.2727 - val_acc: 0.9600\n",
      "Epoch 97/200\n",
      "450/450 [==============================] - 0s 713us/step - loss: 0.0046 - acc: 1.0000 - val_loss: 0.2684 - val_acc: 0.9600\n",
      "Epoch 98/200\n",
      "450/450 [==============================] - 0s 852us/step - loss: 0.0041 - acc: 1.0000 - val_loss: 0.2775 - val_acc: 0.9667\n",
      "Epoch 99/200\n",
      "450/450 [==============================] - 0s 859us/step - loss: 0.0033 - acc: 1.0000 - val_loss: 0.2733 - val_acc: 0.9600\n",
      "Epoch 100/200\n",
      "450/450 [==============================] - 0s 866us/step - loss: 0.0047 - acc: 0.9978 - val_loss: 0.2740 - val_acc: 0.9667\n",
      "Epoch 101/200\n",
      "450/450 [==============================] - 0s 725us/step - loss: 0.0031 - acc: 1.0000 - val_loss: 0.2737 - val_acc: 0.9667\n",
      "Epoch 102/200\n",
      "450/450 [==============================] - 0s 826us/step - loss: 0.0031 - acc: 1.0000 - val_loss: 0.2815 - val_acc: 0.9667\n",
      "Epoch 103/200\n",
      "450/450 [==============================] - 0s 716us/step - loss: 0.0031 - acc: 1.0000 - val_loss: 0.2801 - val_acc: 0.9667\n",
      "Epoch 104/200\n",
      "450/450 [==============================] - 0s 722us/step - loss: 0.0027 - acc: 1.0000 - val_loss: 0.2796 - val_acc: 0.9667\n",
      "Epoch 105/200\n",
      "450/450 [==============================] - 0s 884us/step - loss: 0.0032 - acc: 1.0000 - val_loss: 0.2814 - val_acc: 0.9667\n",
      "Epoch 106/200\n",
      "450/450 [==============================] - 0s 848us/step - loss: 0.0024 - acc: 1.0000 - val_loss: 0.2836 - val_acc: 0.9667\n",
      "Epoch 107/200\n",
      "450/450 [==============================] - 0s 809us/step - loss: 0.0029 - acc: 1.0000 - val_loss: 0.2802 - val_acc: 0.9667\n",
      "Epoch 108/200\n",
      "450/450 [==============================] - 0s 773us/step - loss: 0.0024 - acc: 1.0000 - val_loss: 0.2842 - val_acc: 0.9667\n",
      "Epoch 109/200\n",
      "450/450 [==============================] - 0s 822us/step - loss: 0.0023 - acc: 1.0000 - val_loss: 0.2843 - val_acc: 0.9667\n",
      "Epoch 110/200\n",
      "450/450 [==============================] - 0s 483us/step - loss: 0.0021 - acc: 1.0000 - val_loss: 0.2846 - val_acc: 0.9667\n",
      "Epoch 111/200\n",
      "450/450 [==============================] - 0s 494us/step - loss: 0.0020 - acc: 1.0000 - val_loss: 0.2840 - val_acc: 0.9667\n",
      "Epoch 112/200\n",
      "450/450 [==============================] - 0s 618us/step - loss: 0.0019 - acc: 1.0000 - val_loss: 0.2859 - val_acc: 0.9667\n",
      "Epoch 113/200\n",
      "450/450 [==============================] - 0s 630us/step - loss: 0.0018 - acc: 1.0000 - val_loss: 0.2864 - val_acc: 0.9667\n",
      "Epoch 114/200\n",
      "450/450 [==============================] - 0s 703us/step - loss: 0.0019 - acc: 1.0000 - val_loss: 0.2872 - val_acc: 0.9667\n",
      "Epoch 115/200\n",
      "450/450 [==============================] - 0s 852us/step - loss: 0.0016 - acc: 1.0000 - val_loss: 0.2873 - val_acc: 0.9667\n",
      "Epoch 116/200\n",
      "450/450 [==============================] - 0s 850us/step - loss: 0.0017 - acc: 1.0000 - val_loss: 0.2842 - val_acc: 0.9667\n",
      "Epoch 117/200\n",
      "450/450 [==============================] - 0s 567us/step - loss: 0.0016 - acc: 1.0000 - val_loss: 0.2870 - val_acc: 0.9667\n",
      "Epoch 118/200\n",
      "450/450 [==============================] - 0s 727us/step - loss: 0.0014 - acc: 1.0000 - val_loss: 0.2877 - val_acc: 0.9667\n",
      "Epoch 119/200\n",
      "450/450 [==============================] - 0s 778us/step - loss: 0.0015 - acc: 1.0000 - val_loss: 0.2879 - val_acc: 0.9667\n",
      "Epoch 120/200\n",
      "450/450 [==============================] - 0s 852us/step - loss: 0.0014 - acc: 1.0000 - val_loss: 0.2867 - val_acc: 0.9667\n",
      "Epoch 121/200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "450/450 [==============================] - 0s 731us/step - loss: 0.0014 - acc: 1.0000 - val_loss: 0.2869 - val_acc: 0.9667\n",
      "Epoch 122/200\n",
      "450/450 [==============================] - 0s 767us/step - loss: 0.0013 - acc: 1.0000 - val_loss: 0.2858 - val_acc: 0.9667\n",
      "Epoch 123/200\n",
      "450/450 [==============================] - 0s 716us/step - loss: 0.0012 - acc: 1.0000 - val_loss: 0.2875 - val_acc: 0.9667\n",
      "Epoch 124/200\n",
      "450/450 [==============================] - 0s 887us/step - loss: 0.0012 - acc: 1.0000 - val_loss: 0.2882 - val_acc: 0.9667\n",
      "Epoch 125/200\n",
      "450/450 [==============================] - 0s 772us/step - loss: 0.0012 - acc: 1.0000 - val_loss: 0.2904 - val_acc: 0.9667\n",
      "Epoch 126/200\n",
      "450/450 [==============================] - 0s 770us/step - loss: 0.0011 - acc: 1.0000 - val_loss: 0.2903 - val_acc: 0.9667\n",
      "Epoch 127/200\n",
      "450/450 [==============================] - 0s 760us/step - loss: 0.0011 - acc: 1.0000 - val_loss: 0.2898 - val_acc: 0.9667\n",
      "Epoch 128/200\n",
      "450/450 [==============================] - 0s 840us/step - loss: 0.0010 - acc: 1.0000 - val_loss: 0.2909 - val_acc: 0.9667\n",
      "Epoch 129/200\n",
      "450/450 [==============================] - 0s 894us/step - loss: 0.0010 - acc: 1.0000 - val_loss: 0.2904 - val_acc: 0.9667\n",
      "Epoch 130/200\n",
      "450/450 [==============================] - 0s 709us/step - loss: 9.6953e-04 - acc: 1.0000 - val_loss: 0.2920 - val_acc: 0.9600\n",
      "Epoch 131/200\n",
      "450/450 [==============================] - 0s 812us/step - loss: 0.0010 - acc: 1.0000 - val_loss: 0.2917 - val_acc: 0.9667\n",
      "Epoch 132/200\n",
      "450/450 [==============================] - 0s 710us/step - loss: 9.4125e-04 - acc: 1.0000 - val_loss: 0.2906 - val_acc: 0.9667\n",
      "Epoch 133/200\n",
      "450/450 [==============================] - 0s 721us/step - loss: 9.4641e-04 - acc: 1.0000 - val_loss: 0.2906 - val_acc: 0.9667\n",
      "Epoch 134/200\n",
      "450/450 [==============================] - 0s 817us/step - loss: 8.8806e-04 - acc: 1.0000 - val_loss: 0.2907 - val_acc: 0.9667\n",
      "Epoch 135/200\n",
      "450/450 [==============================] - 0s 857us/step - loss: 8.8602e-04 - acc: 1.0000 - val_loss: 0.2911 - val_acc: 0.9667\n",
      "Epoch 136/200\n",
      "450/450 [==============================] - 0s 718us/step - loss: 8.5227e-04 - acc: 1.0000 - val_loss: 0.2921 - val_acc: 0.9667\n",
      "Epoch 137/200\n",
      "450/450 [==============================] - 0s 838us/step - loss: 8.3248e-04 - acc: 1.0000 - val_loss: 0.2908 - val_acc: 0.9667\n",
      "Epoch 138/200\n",
      "450/450 [==============================] - 0s 849us/step - loss: 8.3108e-04 - acc: 1.0000 - val_loss: 0.2906 - val_acc: 0.9667\n",
      "Epoch 139/200\n",
      "450/450 [==============================] - 0s 727us/step - loss: 7.9143e-04 - acc: 1.0000 - val_loss: 0.2905 - val_acc: 0.9667\n",
      "Epoch 140/200\n",
      "450/450 [==============================] - 0s 859us/step - loss: 7.8027e-04 - acc: 1.0000 - val_loss: 0.2918 - val_acc: 0.9667\n",
      "Epoch 141/200\n",
      "450/450 [==============================] - 0s 734us/step - loss: 7.5513e-04 - acc: 1.0000 - val_loss: 0.2911 - val_acc: 0.9667\n",
      "Epoch 142/200\n",
      "450/450 [==============================] - 0s 822us/step - loss: 7.3185e-04 - acc: 1.0000 - val_loss: 0.2912 - val_acc: 0.9667\n",
      "Epoch 143/200\n",
      "450/450 [==============================] - 0s 865us/step - loss: 7.2557e-04 - acc: 1.0000 - val_loss: 0.2921 - val_acc: 0.9667\n",
      "Epoch 144/200\n",
      "450/450 [==============================] - 0s 725us/step - loss: 7.2072e-04 - acc: 1.0000 - val_loss: 0.2916 - val_acc: 0.9667\n",
      "Epoch 145/200\n",
      "450/450 [==============================] - 0s 812us/step - loss: 6.8821e-04 - acc: 1.0000 - val_loss: 0.2914 - val_acc: 0.9667\n",
      "Epoch 146/200\n",
      "450/450 [==============================] - 0s 710us/step - loss: 6.8257e-04 - acc: 1.0000 - val_loss: 0.2924 - val_acc: 0.9667\n",
      "Epoch 147/200\n",
      "450/450 [==============================] - 0s 758us/step - loss: 6.6483e-04 - acc: 1.0000 - val_loss: 0.2921 - val_acc: 0.9667\n",
      "Epoch 148/200\n",
      "450/450 [==============================] - 0s 746us/step - loss: 6.7590e-04 - acc: 1.0000 - val_loss: 0.2918 - val_acc: 0.9667\n",
      "Epoch 149/200\n",
      "450/450 [==============================] - 0s 718us/step - loss: 6.3984e-04 - acc: 1.0000 - val_loss: 0.2929 - val_acc: 0.9667\n",
      "Epoch 150/200\n",
      "450/450 [==============================] - 0s 739us/step - loss: 6.3400e-04 - acc: 1.0000 - val_loss: 0.2929 - val_acc: 0.9667\n",
      "Epoch 151/200\n",
      "450/450 [==============================] - 0s 846us/step - loss: 6.2117e-04 - acc: 1.0000 - val_loss: 0.2926 - val_acc: 0.9667\n",
      "Epoch 152/200\n",
      "450/450 [==============================] - 0s 806us/step - loss: 6.0999e-04 - acc: 1.0000 - val_loss: 0.2927 - val_acc: 0.9667\n",
      "Epoch 153/200\n",
      "450/450 [==============================] - 0s 705us/step - loss: 5.9080e-04 - acc: 1.0000 - val_loss: 0.2931 - val_acc: 0.9667\n",
      "Epoch 154/200\n",
      "450/450 [==============================] - 0s 825us/step - loss: 5.9276e-04 - acc: 1.0000 - val_loss: 0.2932 - val_acc: 0.9667\n",
      "Epoch 155/200\n",
      "450/450 [==============================] - 0s 718us/step - loss: 5.8000e-04 - acc: 1.0000 - val_loss: 0.2932 - val_acc: 0.9600\n",
      "Epoch 156/200\n",
      "450/450 [==============================] - 0s 695us/step - loss: 5.6614e-04 - acc: 1.0000 - val_loss: 0.2929 - val_acc: 0.9667\n",
      "Epoch 157/200\n",
      "450/450 [==============================] - 0s 818us/step - loss: 5.4636e-04 - acc: 1.0000 - val_loss: 0.2934 - val_acc: 0.9667\n",
      "Epoch 158/200\n",
      "450/450 [==============================] - 0s 690us/step - loss: 5.5653e-04 - acc: 1.0000 - val_loss: 0.2932 - val_acc: 0.9667\n",
      "Epoch 159/200\n",
      "450/450 [==============================] - 0s 839us/step - loss: 5.4346e-04 - acc: 1.0000 - val_loss: 0.2937 - val_acc: 0.9667\n",
      "Epoch 160/200\n",
      "450/450 [==============================] - 0s 722us/step - loss: 5.3000e-04 - acc: 1.0000 - val_loss: 0.2943 - val_acc: 0.9600\n",
      "Epoch 161/200\n",
      "450/450 [==============================] - 0s 837us/step - loss: 5.1731e-04 - acc: 1.0000 - val_loss: 0.2941 - val_acc: 0.9600\n",
      "Epoch 162/200\n",
      "450/450 [==============================] - 0s 720us/step - loss: 5.2035e-04 - acc: 1.0000 - val_loss: 0.2937 - val_acc: 0.9667\n",
      "Epoch 163/200\n",
      "450/450 [==============================] - 0s 830us/step - loss: 5.0315e-04 - acc: 1.0000 - val_loss: 0.2934 - val_acc: 0.9667\n",
      "Epoch 164/200\n",
      "450/450 [==============================] - 0s 707us/step - loss: 4.9790e-04 - acc: 1.0000 - val_loss: 0.2935 - val_acc: 0.9600\n",
      "Epoch 165/200\n",
      "450/450 [==============================] - 0s 691us/step - loss: 4.8789e-04 - acc: 1.0000 - val_loss: 0.2938 - val_acc: 0.9667\n",
      "Epoch 166/200\n",
      "450/450 [==============================] - 0s 841us/step - loss: 4.8528e-04 - acc: 1.0000 - val_loss: 0.2936 - val_acc: 0.9667\n",
      "Epoch 167/200\n",
      "450/450 [==============================] - 0s 696us/step - loss: 4.7656e-04 - acc: 1.0000 - val_loss: 0.2942 - val_acc: 0.9667\n",
      "Epoch 168/200\n",
      "450/450 [==============================] - 0s 820us/step - loss: 4.6606e-04 - acc: 1.0000 - val_loss: 0.2941 - val_acc: 0.9667\n",
      "Epoch 169/200\n",
      "450/450 [==============================] - 0s 702us/step - loss: 4.5888e-04 - acc: 1.0000 - val_loss: 0.2945 - val_acc: 0.9667\n",
      "Epoch 170/200\n",
      "450/450 [==============================] - 0s 734us/step - loss: 4.5556e-04 - acc: 1.0000 - val_loss: 0.2938 - val_acc: 0.9667\n",
      "Epoch 171/200\n",
      "450/450 [==============================] - 0s 677us/step - loss: 4.5026e-04 - acc: 1.0000 - val_loss: 0.2947 - val_acc: 0.9667\n",
      "Epoch 172/200\n",
      "450/450 [==============================] - 0s 705us/step - loss: 4.4219e-04 - acc: 1.0000 - val_loss: 0.2949 - val_acc: 0.9667\n",
      "Epoch 173/200\n",
      "450/450 [==============================] - 0s 715us/step - loss: 4.3493e-04 - acc: 1.0000 - val_loss: 0.2950 - val_acc: 0.9667\n",
      "Epoch 174/200\n",
      "450/450 [==============================] - 0s 795us/step - loss: 4.3128e-04 - acc: 1.0000 - val_loss: 0.2950 - val_acc: 0.9667\n",
      "Epoch 175/200\n",
      "450/450 [==============================] - 0s 705us/step - loss: 4.2536e-04 - acc: 1.0000 - val_loss: 0.2942 - val_acc: 0.9667\n",
      "Epoch 176/200\n",
      "450/450 [==============================] - 0s 712us/step - loss: 4.2110e-04 - acc: 1.0000 - val_loss: 0.2948 - val_acc: 0.9667\n",
      "Epoch 177/200\n",
      "450/450 [==============================] - 0s 841us/step - loss: 4.1417e-04 - acc: 1.0000 - val_loss: 0.2954 - val_acc: 0.9667\n",
      "Epoch 178/200\n",
      "450/450 [==============================] - 0s 701us/step - loss: 4.0935e-04 - acc: 1.0000 - val_loss: 0.2955 - val_acc: 0.9600\n",
      "Epoch 179/200\n",
      "450/450 [==============================] - 0s 823us/step - loss: 4.0350e-04 - acc: 1.0000 - val_loss: 0.2951 - val_acc: 0.9667\n",
      "Epoch 180/200\n",
      "450/450 [==============================] - 0s 713us/step - loss: 3.9435e-04 - acc: 1.0000 - val_loss: 0.2953 - val_acc: 0.9667\n",
      "Epoch 181/200\n",
      "450/450 [==============================] - 0s 840us/step - loss: 3.9606e-04 - acc: 1.0000 - val_loss: 0.2952 - val_acc: 0.9667\n",
      "Epoch 182/200\n",
      "450/450 [==============================] - 0s 701us/step - loss: 3.8778e-04 - acc: 1.0000 - val_loss: 0.2954 - val_acc: 0.9667\n",
      "Epoch 183/200\n",
      "450/450 [==============================] - 0s 846us/step - loss: 3.8191e-04 - acc: 1.0000 - val_loss: 0.2957 - val_acc: 0.9667\n",
      "Epoch 184/200\n",
      "450/450 [==============================] - 0s 714us/step - loss: 3.7729e-04 - acc: 1.0000 - val_loss: 0.2953 - val_acc: 0.9667\n",
      "Epoch 185/200\n",
      "450/450 [==============================] - 0s 808us/step - loss: 3.7426e-04 - acc: 1.0000 - val_loss: 0.2953 - val_acc: 0.9667\n",
      "Epoch 186/200\n",
      "450/450 [==============================] - 0s 777us/step - loss: 3.6557e-04 - acc: 1.0000 - val_loss: 0.2953 - val_acc: 0.9667\n",
      "Epoch 187/200\n",
      "450/450 [==============================] - 0s 812us/step - loss: 3.6712e-04 - acc: 1.0000 - val_loss: 0.2956 - val_acc: 0.9667\n",
      "Epoch 188/200\n",
      "450/450 [==============================] - 0s 858us/step - loss: 3.5683e-04 - acc: 1.0000 - val_loss: 0.2959 - val_acc: 0.9667\n",
      "Epoch 189/200\n",
      "450/450 [==============================] - 0s 765us/step - loss: 3.6029e-04 - acc: 1.0000 - val_loss: 0.2960 - val_acc: 0.9667\n",
      "Epoch 190/200\n",
      "450/450 [==============================] - 0s 803us/step - loss: 3.5347e-04 - acc: 1.0000 - val_loss: 0.2958 - val_acc: 0.9667\n",
      "Epoch 191/200\n",
      "450/450 [==============================] - 0s 730us/step - loss: 3.4949e-04 - acc: 1.0000 - val_loss: 0.2957 - val_acc: 0.9667\n",
      "Epoch 192/200\n",
      "450/450 [==============================] - 0s 727us/step - loss: 3.4604e-04 - acc: 1.0000 - val_loss: 0.2956 - val_acc: 0.9667\n",
      "Epoch 193/200\n",
      "450/450 [==============================] - 0s 719us/step - loss: 3.3808e-04 - acc: 1.0000 - val_loss: 0.2959 - val_acc: 0.9667\n",
      "Epoch 194/200\n",
      "450/450 [==============================] - 0s 810us/step - loss: 3.4022e-04 - acc: 1.0000 - val_loss: 0.2958 - val_acc: 0.9667\n",
      "Epoch 195/200\n",
      "450/450 [==============================] - 0s 735us/step - loss: 3.3393e-04 - acc: 1.0000 - val_loss: 0.2958 - val_acc: 0.9667\n",
      "Epoch 196/200\n",
      "450/450 [==============================] - 0s 796us/step - loss: 3.3024e-04 - acc: 1.0000 - val_loss: 0.2961 - val_acc: 0.9600\n",
      "Epoch 197/200\n",
      "450/450 [==============================] - 0s 729us/step - loss: 3.2673e-04 - acc: 1.0000 - val_loss: 0.2958 - val_acc: 0.9600\n",
      "Epoch 198/200\n",
      "450/450 [==============================] - 0s 826us/step - loss: 3.2184e-04 - acc: 1.0000 - val_loss: 0.2959 - val_acc: 0.9667\n",
      "Epoch 199/200\n",
      "450/450 [==============================] - 0s 696us/step - loss: 3.1953e-04 - acc: 1.0000 - val_loss: 0.2957 - val_acc: 0.9667\n",
      "Epoch 200/200\n",
      "450/450 [==============================] - 0s 850us/step - loss: 3.1559e-04 - acc: 1.0000 - val_loss: 0.2959 - val_acc: 0.9667\n"
     ]
    }
   ],
   "source": [
    "# Deep Learning Parameters\n",
    "batch_size = 5 # Number of samples per gradient update.\n",
    "epochs = 200    # An epoch is an iteration over the entire x and y data provided.\n",
    "\n",
    "# Train Model\n",
    "hist = model_d.fit(train_set_d, train_classes_d_hot, verbose=1, \n",
    "                    batch_size=batch_size, epochs=epochs, validation_data=(test_set_d,test_classes_d_hot))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot Training Loss and Training Accuracy\n",
    "plt.figure(figsize=(8,4))\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.title(\"Training loss\")\n",
    "plt.plot(range(epochs),hist.history[\"loss\"])\n",
    "\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.title(\"Training Accuracy\")\n",
    "plt.plot(range(epochs),hist.history[\"acc\"])\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Make Predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Predict\n",
    "predictions = model_d.predict(test_set_d)\n",
    "predictions_round=predictions.round().astype('int')\n",
    "predictions_int=np.argmax(predictions_round,axis=2)\n",
    "predictions_labels=labelencoder.inverse_transform(np.ravel(predictions_int))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall:  [0.92 1.   1.   1.   0.92 0.96]\n",
      "Precision:  [1.         1.         1.         0.92592593 0.95833333 0.92307692]\n",
      "F1-Score:  [0.95833333 1.         1.         0.96153846 0.93877551 0.94117647]\n",
      "Accuracy:  145\n",
      "Number of samples: 150\n"
     ]
    }
   ],
   "source": [
    "# Recall - the ability of the classifier to find all the positive samples\n",
    "print(\"Recall: \", recall_score(test_classes, predictions_int,average=None))\n",
    "\n",
    "# Precision - The precision is intuitively the ability of the classifier not to label as positive a sample that is negatives\n",
    "print(\"Precision: \", precision_score(test_classes, predictions_int,average=None))\n",
    "\n",
    "# F1-Score - The F1 score can be interpreted as a weighted average of the precision and recall,\n",
    "print(\"F1-Score: \", f1_score(test_classes, predictions_int, average=None))\n",
    "\n",
    "# Accuracy - the number of correctly classified samples\n",
    "print(\"Accuracy: \", accuracy_score(test_classes, predictions_int,normalize=False))\n",
    "print(\"Number of samples:\",test_classes.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute confusion matrix\n",
    "cnf_matrix = confusion_matrix(test_classes, predictions_int)\n",
    "np.set_printoptions(precision=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Function to Plot Confusion Matrix\n",
    "# http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\n",
    "def plot_confusion_matrix(cm, classes,\n",
    "                          normalize=False,\n",
    "                          title='Confusion matrix',\n",
    "                          cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "        print(\"Normalized confusion matrix\")\n",
    "    else:\n",
    "        print('Confusion matrix, without normalization')\n",
    "    \"\"\"\n",
    "    #print(cm)\n",
    "\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=45)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    fmt = '.2f' if normalize else 'd'\n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, format(cm[i, j], fmt),\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x864 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot non-normalized confusion matrix\n",
    "plt.figure(figsize=(16,12))\n",
    "plot_confusion_matrix(cnf_matrix, classes=labelencoder.classes_,\n",
    "                      title='Confusion matrix, without normalization')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Find wrong predicted samples indexes\n",
    "wrong_predictions = [i for i, (e1, e2) in enumerate(zip(test_classes, predictions_int)) if e1 != e2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['viola' 'cello' 'cello' 'trumpet' 'trumpet']\n",
      "['trumpet' 'viola' 'sax' 'sax' 'viola']\n",
      "['./audio/london_phill_dataset_multi/viola/viola_A4_15_pianissimo_arco-normal.mp3'\n",
      " './audio/london_phill_dataset_multi/cello/cello_A2_025_fortissimo_arco-normal.mp3'\n",
      " './audio/london_phill_dataset_multi/cello/cello_Gs3_05_forte_arco-normal.mp3'\n",
      " './audio/london_phill_dataset_multi/trumpet/trumpet_A3_05_forte_normal.mp3'\n",
      " './audio/london_phill_dataset_multi/trumpet/trumpet_Cs4_15_pianissimo_normal.mp3']\n"
     ]
    }
   ],
   "source": [
    "# Find wrong predicted audio files\n",
    "print(np.array(labels)[test_index[wrong_predictions]])\n",
    "print(predictions_labels[wrong_predictions].T)\n",
    "print(np.array(files)[test_index[wrong_predictions]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_history(history):\n",
    "    loss_list = [s for s in history.history.keys() if 'loss' in s and 'val' not in s]\n",
    "    val_loss_list = [s for s in history.history.keys() if 'loss' in s and 'val' in s]\n",
    "    acc_list = [s for s in history.history.keys() if 'acc' in s and 'val' not in s]\n",
    "    val_acc_list = [s for s in history.history.keys() if 'acc' in s and 'val' in s]\n",
    "    \n",
    "    if len(loss_list) == 0:\n",
    "        print('Loss is missing in history')\n",
    "        return \n",
    "    \n",
    "    ## As loss always exists\n",
    "    epochs = range(1,len(history.history[loss_list[0]]) + 1)\n",
    "    \n",
    "    ## Loss\n",
    "    plt.figure(1)\n",
    "    for l in loss_list:\n",
    "        plt.plot(epochs, history.history[l], 'b', label='Training loss (' + str(str(format(history.history[l][-1],'.5f'))+')'))\n",
    "    for l in val_loss_list:\n",
    "        plt.plot(epochs, history.history[l], 'g', label='Validation loss (' + str(str(format(history.history[l][-1],'.5f'))+')'))\n",
    "    \n",
    "    plt.title('Loss')\n",
    "    plt.xlabel('Epochs')\n",
    "    plt.ylabel('Loss')\n",
    "    plt.legend()\n",
    "    \n",
    "    ## Accuracy\n",
    "    plt.figure(2)\n",
    "    for l in acc_list:\n",
    "        plt.plot(epochs, history.history[l], 'b', label='Training accuracy (' + str(format(history.history[l][-1],'.5f'))+')')\n",
    "    for l in val_acc_list:    \n",
    "        plt.plot(epochs, history.history[l], 'g', label='Validation accuracy (' + str(format(history.history[l][-1],'.5f'))+')')\n",
    "\n",
    "    plt.title('Accuracy')\n",
    "    plt.xlabel('Epochs')\n",
    "    plt.ylabel('Accuracy')\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xd8VFX6+PHPk8mkEUgooSVEUFEIHaKCiICCYKVYERsWfrr2tpa1rLpF7OuuroJiWxR1XZWvi4LrouCiVCE0KWKAhBZCCCF9kuf3x50Zk5BGYDLBed6v17xy586Ze5/cTO4z55x7zxFVxRhjjAEIC3YAxhhjmg5LCsYYY/wsKRhjjPGzpGCMMcbPkoIxxhg/SwrGGGP8LCkYY4zxs6RgTA1EJF1ERgQ7DmMakyUFY4wxfpYUjDlEInKDiGwSkb0iMktEOnrXi4g8LyK7RWS/iKwSkZ7e184RkbUikicimSJyT3B/C2OqZ0nBmEMgImcAfwYuAToAW4CZ3pfPAk4HTgDivGWyva+9Dvw/VW0O9AT+24hhG1Nv4cEOwJijzERguqouBxCRB4AcEekMlALNgW7AYlVdV+F9pUCKiKxU1Rwgp1GjNqaerKZgzKHpiFM7AEBVD+DUBhJV9b/A34CXgN0iMlVEWniLXgicA2wRkW9EZFAjx21MvVhSMObQbAeO8T0RkWZAayATQFVfVNUBQApOM9K93vVLVHUM0Bb4BPigkeM2pl4sKRhTO7eIRPkewHvAJBHpKyKRwJ+ARaqaLiInicgpIuIG8oEioFxEIkRkoojEqWopsB8oD9pvZEwtLCkYU7vZQGGFxzDgYeAjYAdwHHCZt2wLYBpOf8EWnGalp72vXQmki8h+4EacvgljmhyxSXaMMcb4WE3BGGOMnyUFY4wxfpYUjDHG+FlSMMYY43fU3dHcpk0b7dy5c7DDMMaYo8qyZcv2qGpCXeWOuqTQuXNnli5dGuwwjDHmqCIiW+ouFcDmIxGZ7h0tcnUtZYaJyAoRWSMi3wQqFmOMMfUTyD6FN4HRNb0oIvHAy8AFqtoDuDiAsRhjjKmHgCUFVZ0P7K2lyOXAv1R1q7f87kDFYowxpn6C2adwAs64Ml/jDDf8F1V9u7qCIjIZmAyQnJzcaAEa0xClpaVkZGRQVFQU7FBMCIqKiiIpKQm3292g9wczKYQDA4AzgWjgOxH5XlU3VC2oqlOBqQCpqak2Lodp0jIyMmjevDmdO3dGRIIdjgkhqkp2djYZGRl06dKlQdsI5n0KGcAcVc1X1T3AfKBPEOMx5ogoKiqidevWlhBMoxMRWrdufVi11GAmhU+B00QkXERigFOAdXW8x5ijgiUEEyyH+9kL5CWp7wHfASeKSIaIXCciN4rIjQDeqQq/ANKAxcBrqlrj5auHa/VqePhhyMoK1B6MMeboF8irjyaoagdVdatqkqq+rqqvqOorFco8raopqtpTVV8IVCwAP/4If/gD7NoVyL0YE3zZ2dn07duXvn370r59exITE/3PS0pK6rWNSZMmsX79+lrLvPTSS8yYMeNIhMxpp53GihUrjsi2qlq6dCn/7//9P8Bpc//Nb37D8ccfT+/evWvc55IlS+jZsyfHH388d955p399dnY2Z555Jl27dmXUqFHk5ubWut2ff/6Z/v3707dvX3r27Mm0adMAyMvL45xzzqFbt2706NGD3/3ud/59vPDCC7z9drXX3DQOVT2qHgMGDNCG+PRTVVBdtqxBbzem3tauXRvsEPweffRRffrppw9aX15ermVlZUGIqHqDBw/WH374ISDbHjt2rK5evVpVVT/99FM977zzVFV1wYIFeuqpp1b7nv79++vixYu1vLxcR44cqXPnzlVV1TvvvNN/PJ944gl98MEHa91uUVGRFhUVqapqbm6udurUSXft2qV5eXn69ddf+8sMGjTIv4+8vDzt37//Yf3O1X0GgaVaj3NsyAyI57s6q55flIz51dm0aRMpKSlMnDiRHj16sGPHDiZPnkxqaio9evTg8ccf95f1fXP3eDzEx8dz//3306dPHwYNGsTu3c4tRQ899BAvvPCCv/z999/PySefzIknnsjChQsByM/P58ILLyQlJYWLLrqI1NTUOmsE//jHP+jVqxc9e/bkwQcfBMDj8XDllVf617/44osAPP/886SkpNC7d2+uuOKKg7aVm5vL+vXr6dGjBwCffvopV111lT/mnTt3klWlTXnbtm0UFRVx0kknISJceeWVfPLJJ/73X3311QBcffXVldZXt93IyEgiIyMBKC4u9p94Y2NjGTp0KACRkZH069ePjIwMAGJjY+nYsSPLly+v9TgFylE39lFDRUQ4Py0pmMZ0xx1wpFtF+vaFFxrY2Prjjz/y9ttvk5qaCsCTTz5Jq1at8Hg8DB8+nIsuuoiUlJRK78nNzWXo0KE8+eST3HXXXUyfPp3777//oG2rKosXL2bWrFk8/vjjfPHFF/z1r3+lffv2fPTRR6xcuZL+/fvXGl9GRgYPPfQQS5cuJS4ujhEjRvDZZ5+RkJDAnj17WLVqFQD79u0D4KmnnmLLli1ERET411W0ePFievXq5X+emZlJp06d/M+TkpLIzMwkISGhzjLgNB/5yiYmJrJjx446t5uens4FF1zApk2beO6552jXrl2lGHNycpg9eza//e1v/etSU1NZsGBBnccrEEKmpuBLCqWlwY3DmGA67rjj/AkB4L333qN///7079+fdevWsXbt2oPeEx0dzdlnnw3AgAEDSE9Pr3bb48ePP6jMt99+y2WXOVNY9+nTx/+NvSaLFi3ijDPOoE2bNrjdbi6//HLmz5/P8ccfz/r167ntttuYM2cOcXFxAPTo0YMrrriCGTNmVHuz1o4dOyqd8IOhc+fOpKWlsXHjRqZPn86ePXv8r5WWlnLppZdy9913c8wxx/jXt23blu3btwcj3NCpKVjzkQmGhn6jD5RmzZr5lzdu3Mhf/vIXFi9eTHx8PFdccUW117dH+L5RAS6XC4/HU+22fc0ktZVpqNatW5OWlsbnn3/OSy+9xEcffcTUqVOZM2cO33zzDbNmzeJPf/oTaWlpuFwu//uio6Mr/U6JiYls27aNgQMHAk7NJDExsdK+fGV8KpZp3bo1WVlZJCQkkJmZSYcOHQ5pu926dePbb79l7NixqCrXXXcdPXv25JZbbqlUtqioiOjo6MM9bA0ScjUFSwrGOPbv30/z5s1p0aIFO3bsYM6cOUd8H4MHD+aDDz4AYNWqVdXWRCo65ZRTmDdvHtnZ2Xg8HmbOnMnQoUPJyspCVbn44ot5/PHHWb58OWVlZWRkZHDGGWfw1FNPsWfPHgoKCiptr3v37mzatMn//IILLvBf2fPtt9/Srl27g2oSnTp1IjIykiVLlqCqvPPOO4wZM8b//rfeeguAt956q9L66rZbcbiT7OxsFi5cyAknnADAAw88QFFREc8888xBx2HDhg307NmzHkf4yAuZmoI1HxlTWf/+/UlJSaFbt24cc8wxDB48+Ijv49Zbb+Wqq64iJSXF//A1/VQnKSmJJ554gmHDhqGqnH/++Zx77rksX76c6667DlVFRJgyZQoej4fLL7+cvLw8ysvLueeee2jevHml7fXo0YOsrCzy8/Np1qwZ559/Pp9//jnHHXccMTEx/hN5WVkZp5xyin+ulr///e9cc801FBUVcd5553HWWWcB8OCDD3LJJZfw6quv0qVLF95//32AGre7evVq7r33XsLCwlBVHnjgAVJSUkhPT2fKlCl0797d329w++23M2nSJAC+++47/vSnPx3Bv0T9iXOl0tEjNTVVGzLJzoYNcOKJMGMGXH55AAIzxmvdunV079492GE0CR6PB4/HQ1RUFBs3buSss85i48aNhIc33vfRp59+moSEBK655ppG2+fhWLJkCS+//DJvvPFGg7dR3WdQRJapamoNb/ELmZqC9SkY0/gOHDjAmWeeicfjQVV59dVXGzUhANxyyy3861//atR9Ho69e/fy2GOPBW3/IZMUrPnImMYXHx/PsmXLghpDdHQ0EydODGoMh2LUqFFB3b91NBtjjPELmaRgzUfGGFO3kEkK1nxkjDF1C7mkYDUFY4ypWcgkBd9NjpYUjDGmZiGTFESc2oIlBfNrN3z48IPuTn7hhRe46aaban1fbGwsANu3b+eiiy6qtsywYcOo6z6hF154odKdxeecc061g9Udqt///vfV3v17JBQWFjJ06FDKysoA527lrl270rVrV/8dzFXde++9dOvWjd69ezNu3Dj/71hSUsKkSZPo1asXffr04euvv/a/Z9iwYZx44on++S18I85u3bqV4cOH069fP3r37s3s2bMBZ2ykq6++ml69etG9e3f+/Oc/+/dx+umnH/HhRCCwM69NF5HdIlLrbGoicpKIeESk+k/hERQRYX0K5tdvwoQJzJw5s9K6mTNnMmHChHq9v2PHjvzzn/9s8P6rJoXZs2cTHx/f4O01hunTpzN+/HhcLpf/PoFFixaxePFiHnvsMXJycg56z8iRI1m9ejVpaWmccMIJ/hO2byKdVatW8eWXX3L33XdTXl7uf9+MGTNYsWIFK1asoG3btgD84Q9/4JJLLuGHH35g5syZ/OY3vwHgww8/pLi4mFWrVrFs2TJeffVV0tPTiYiI4Mwzz/TfUX0kBfI+hTeBvwE1TiEkIi5gCjA3gHH4ud1WUzCN644v7mDFziM7dnbf9n15YXTNI+1ddNFFPPTQQ5SUlBAREUF6ejrbt29n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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_history(hist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
